Web API Design
카트에 상품 추가 AP(1)
카트에 상품 추가 API(2)

뭐가 올바른 설계일까??
Web API?

Request와 Response를 잘 설계해야하는 이유?
여러명에서 일을 나눠서 하기 때문에, 약속을 잘 정해야함 → 소통이 안될 수 있다.
웹 API 설계란?

HTTP

RFC 2616(HTTP/1.1)
- HTTP 1.1 명세
- URI, Media Type, HTTP 형식, Method, Status 등 HTTP의 요소들에 대한 정의 및 설명
"RFC Header" 이런식으로 검색하면 Header 명세에 대해 자세히 알 수 있음
이미 명세가 있는데 따로 설계를 할 필요가 있는가?
HTTP는 API를 설계를 사용되는데 필요한 요소
좋은 API 설계란?
꼭 잘해야하는가?
- 그냥 서버와 클라이언트 간의 약속만 잘 지키면 되는거 아닌가?
잘 해야한다..
API 변경 → 클라이언트의 막대한 변경이 생길 수 있음
이미 대기업에서 설계하지 않았는가?
각 기업마다 다 다름
사실 API 설계 표준화 시도는 있었다..

좋은 API 설계의 특징

REST API
Representational state transfer 추상적인 스타일 → 구체화한 것이 규약
제약 조건을 읽어보는 것은 추천한다.
REST 용어의 사용

REST 미션에 잘 사용하기

용어 설명
리소스

- 클라이언트에서 저 서비스가 어떤 자원을 제공해줄수 있는지 관점으로 보라
- 내부적으로 클래스가 어떻게 설계되어있는지와 다를 수 있음
- 동일시 생각하지 않기
리소스는 클라이언트가 얻기 원하는 것이다.

URL - Path & Query
- path: 계층적 형태로 구성된 데이터
- query: 비계층적 형태로 구성된 데이터

- 접근하고 하즌 것들은 계층이 없음
리소스의 표현(Representation)
레이싱카를 받고 싶다.
HTTP로 받는 것은 레이싱 카를 받을까? no 레이싱카의 표현을 받는 것이다.
표현은 어떻게 해석할 수 있을까?
리소스의 표현만 보내주면 안되고, 어떻게 해석을 해야하는지 보내주어야함 ~= 헤더 정보
Note Content Negotiation
많이 사용하는 API 가이드
리소스 네이밍 가이드
사용하는 것을 참고해라

Thanks for reading! Read other posts?